#include<iostream>

using namespace std;


//class A
//{
//public:
//	void add()
//	{}
//};
//class B : public A
//{
//public:
//	void add()
//	{
//
//	}
//};
//int main()
//{
//	return 0;
//}
//class A
//{
//public:
//  void f() { cout << "A::f()" << endl; }
//  int a;
//};
//
//
//
//class B : public A
//
//{
//
//public:
//
//	void f(int a) { cout << "B::f()" << endl; }
//
//	int a;
//
//};


class A
{

public:

  A() { cout << "A::A()" << endl; }

  ~A() { cout << "A::~A()" << endl; }

  int a;

};


template<size_t = 10>
class B : public A

{

public:

	B() { cout << "B::B()" << endl; }

	~B() { cout << "B::~B()" << endl; }

	int b;

};



void f()

{

	B b;

}

int main()

{
	A a;
	B b;
	A* c = b;
	

	return 0;

}
